home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 23 / CU Amiga - Super CD-ROM 23 (June 1998).iso / CreatingGames / Utilities / Misc / GMS / GMSDev / Includes / sound / sound.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-11-30  |  4.1 KB  |  175 lines

  1. #ifndef SOUND_SOUND_H
  2. #define SOUND_SOUND_H TRUE
  3.  
  4. /*
  5. **    $VER: sound.h V0.9B
  6. **
  7. **    Sound definitions.
  8. **
  9. **    (C) Copyright 1996-1997 DreamWorld Productions.
  10. **        All Rights Reserved
  11. */
  12.  
  13. #ifndef DPKERNEL_H
  14. #include <dpkernel/dpkernel.h>
  15. #endif
  16.  
  17. /*****************************************************************************
  18. ** Sound object.
  19. */
  20.  
  21. #define SNDVERSION  1
  22. #define TAGS_SOUND  ((ID_SPCTAGS<<16)|ID_SOUND)
  23.  
  24. struct Sound {
  25.   struct Head Head;    /* Standard structure header */
  26.   WORD   LastChannel;  /* Channel (1 - ...) */
  27.   WORD   Priority;     /* Priority */
  28.   APTR   Header;       /* Ptr to sample info header, if any */
  29.   APTR   Data;         /* Address of sample data */
  30.   LONG   Length;       /* Length of sample data in bytes */
  31.   WORD   Octave;       /* Octave/Note setting */
  32.   WORD   Volume;       /* Volume of sample (0 - 100) */
  33.   LONG   Attrib;       /* Sound attributes (SBIT8/SBIT16) */
  34.   BYTE   *Source;      /* File for the sound, if required */
  35.   LONG   Frequency;    /* Frequency of sampled sound */       
  36.  
  37.   /*** Private fields below ***/
  38.  
  39.   BYTE   prvAFlags;    /* Private */
  40.   BYTE   prvPad;       /* Private */
  41. };
  42.  
  43. #define SA_Priority  (14|TWORD)
  44. #define SA_Header    (16|TAPTR)
  45. #define SA_Data      (20|TAPTR)
  46. #define SA_Length    (24|TLONG)
  47. #define SA_Octave    (28|TWORD)
  48. #define SA_Volume    (30|TWORD)
  49. #define SA_Attrib    (32|TAPTR)
  50. #define SA_Source    (36|TAPTR)
  51. #define SA_Frequency (40|TLONG)
  52.  
  53. /*** Flags for Attrib ***/
  54.  
  55. /*#define SBIT8     0x00000000     Sound data is 8 bit */
  56. /*#define SBIT16    0x00000001     Sound data is 16 bit */
  57. #define SMODVOL   0x00000002    /* Modulate volume with next channel */
  58. #define SMODPER   0x00000004    /* Modulate period with next channel */
  59. #define SREPEAT   0x00000008    /* Repeat sample forever */
  60. #define SEMPTY    0x00000010    /* Only play sound if channel is empty */
  61. #define SLEFT     0x00000020    /* Left speaker preferred */
  62. #define SRIGHT    0x00000040    /* Right speaker preferred */
  63. #define SFORCE    0x00000080    /* Enforce use of selected speaker */
  64. #define SSTOPLAST 0x00000100    /* Play sound only on given channel */
  65.  
  66. /*****************************************************************************
  67. ** Octave definitions for Sound->Octave.  An 'S' at the end of an octave
  68. ** definition indicates a sharp note.
  69. */
  70.  
  71. #define OCT_G0S  0
  72. #define OCT_G0   2
  73. #define OCT_F0S  4
  74. #define OCT_F0   6
  75. #define OCT_E0   8
  76. #define OCT_D0S 10
  77. #define OCT_D0  12
  78. #define OCT_C0S 14
  79. #define OCT_C0  16
  80. #define OCT_B0  18
  81. #define OCT_A0S 20
  82. #define OCT_A0  22
  83.  
  84. #define OCT_G1S 24
  85. #define OCT_G1  26
  86. #define OCT_F1S 28
  87. #define OCT_F1  30
  88. #define OCT_E1  32
  89. #define OCT_D1S 34
  90. #define OCT_D1  36
  91. #define OCT_C1S 38
  92. #define OCT_C1  40
  93. #define OCT_B1  42
  94. #define OCT_A1S 44
  95. #define OCT_A1  46
  96.  
  97. #define OCT_G2S 48
  98. #define OCT_G2  50
  99. #define OCT_F2S 52
  100. #define OCT_F2  54
  101. #define OCT_E2  56
  102. #define OCT_D2S 58
  103. #define OCT_D2  60
  104. #define OCT_C2S 62
  105. #define OCT_C2  64
  106. #define OCT_B2  66
  107. #define OCT_A2S 68
  108. #define OCT_A2  70
  109.  
  110. #define OCT_G3S 72
  111. #define OCT_G3  74
  112. #define OCT_F3S 76
  113. #define OCT_F3  78
  114. #define OCT_E3  80
  115. #define OCT_D3S 82
  116. #define OCT_D3  84
  117. #define OCT_C3S 86
  118. #define OCT_C3  88
  119. #define OCT_B3  90
  120. #define OCT_A3S 92
  121. #define OCT_A3  94
  122.  
  123. #define OCT_G4S 96
  124. #define OCT_G4  98
  125. #define OCT_F4S 100
  126. #define OCT_F4  102
  127. #define OCT_E4  104
  128. #define OCT_D4S 106
  129. #define OCT_D4  108
  130. #define OCT_C4S 110
  131. #define OCT_C4  112
  132. #define OCT_B4  114
  133. #define OCT_A4S 116
  134. #define OCT_A4  118
  135.  
  136. #define OCT_G5S 120
  137. #define OCT_G5  122
  138. #define OCT_F5S 124
  139. #define OCT_F5  126
  140. #define OCT_E5  128
  141. #define OCT_D5S 130
  142. #define OCT_D5  132
  143. #define OCT_C5S 134
  144. #define OCT_C5  136
  145. #define OCT_B5  138
  146. #define OCT_A5S 140
  147. #define OCT_A5  142
  148.  
  149. #define OCT_G6S 144
  150. #define OCT_G6  146
  151. #define OCT_F6S 148
  152. #define OCT_F6  150
  153. #define OCT_E6  152
  154. #define OCT_D6S 154
  155. #define OCT_D6  156
  156. #define OCT_C6S 158
  157. #define OCT_C6  160
  158. #define OCT_B6  162
  159. #define OCT_A6S 164
  160. #define OCT_A6  166
  161.  
  162. #define OCT_G7S 168
  163. #define OCT_G7  170
  164. #define OCT_F7S 172
  165. #define OCT_F7  174
  166. #define OCT_E7  176
  167. #define OCT_D7S 178
  168. #define OCT_D7  180
  169. #define OCT_C7S 182
  170. #define OCT_C7  184
  171. #define OCT_B7  186
  172. #define OCT_A7S 188
  173.  
  174. #endif /* SOUND_SOUND_H */
  175.